import request from '@/utils/request';

const cartApi = {
  /**
   * 获取购物车列表
   */
  getCartList() {
    return request({
      url: '/api/cart/list',
      method: 'GET',
      loading: true,
      loadingText: '加载中...'
    });
  },

  /**
   * 添加商品到购物车
   * @param {Object} data - 商品信息
   * @param {string} data.productId - 商品ID
   * @param {string} data.specificationId - 规格ID
   * @param {number} data.count - 数量
   */
  addToCart(data) {
    return request({
      url: '/api/cart/add',
      method: 'POST',
      data,
      loading: true,
      loadingText: '添加中...'
    });
  },

  /**
   * 更新购物车商品
   * @param {Object} data - 更新信息
   * @param {string} data.id - 购物车项ID
   * @param {number} [data.count] - 数量
   * @param {boolean} [data.selected] - 是否选中
   */
  updateCartItem(data) {
    return request({
      url: '/api/cart/update',
      method: 'PUT',
      data
    });
  },

  /**
   * 删除购物车商品
   * @param {string} id - 购物车项ID
   */
  removeCartItem(id) {
    return request({
      url: `/api/cart/remove/${id}`,
      method: 'DELETE',
      loading: true,
      loadingText: '删除中...'
    });
  },

  /**
   * 清空购物车
   */
  clearCart() {
    return request({
      url: '/api/cart/clear',
      method: 'DELETE',
      loading: true,
      loadingText: '清空中...'
    });
  },

  /**
   * 全选/取消全选
   * @param {boolean} selected - 是否全选
   */
  selectAll(selected) {
    return request({
      url: '/api/cart/selectAll',
      method: 'PUT',
      data: { selected }
    });
  }
};

export default cartApi; 